abstract class Repository<T, K, C, U> {
  Future<List<T>> read();
  Future<T?> readById(K id);
  Future<T> create(C entity);
  Future<T> update(U entity);
  Future<T> delete(T entity);
}